Computer programs are often specified with one or more expressions, for instance as a component of a statement. An expression is a combination of values, constants, variables, operators, and a function that is interpreted in accordance with rules of precedence of a particular programming language. An expression can be computed, or in other words evaluated, the result of which is a value of some type (e.g., integer, string, Boolean . . .). By way of example, an arithmetic and programming expression can be “1+2” which can evaluate to “3.” Similarly, an expression can correspond to “x+2,” wherein “x” is a pointer to a value in memory. Further, “5>4” is an example of a relational, or Boolean, expression that evaluates to true. Evaluated expressions can have side effects meaning that in addition to returning a value there is a secondary, typically undesirable, effect such as a change in some state.